# generate_grpc.py
# 这个脚本用于从proto文件生成Python代码

import os
import subprocess


def generate_grpc_code():
    """
    执行protoc命令生成gRPC代码
    这将从book_service.proto生成两个文件:
    - book_service_pb2.py: 包含消息类
    - book_service_pb2_grpc.py: 包含服务类
    """
    # 确保当前目录下存在proto文件
    if not os.path.exists("book_service.proto"):
        print("找不到book_service.proto文件!")
        return False

    # 执行protoc命令
    command = [
        "python",
        "-m",
        "grpc_tools.protoc",
        "--proto_path=.",
        "--python_out=.",
        "--grpc_python_out=.",
        "book_service.proto",
    ]

    try:
        subprocess.check_call(command)
        print("gRPC代码生成成功!")
        return True
    except subprocess.CalledProcessError as e:
        print(f"gRPC代码生成失败: {e}")
        return False


if __name__ == "__main__":
    generate_grpc_code()
